use std::path::Path;
use videoDownloader::converter::{TsConverter, ConversionOptions, MediaConverter};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    println!("🧪 测试TS合并功能");
    
    // 创建测试输入文件
    let input_file = "test_input.ts";
    let output_file = "test_output.ts";
    
    // 确保输入文件存在
    if !Path::new(input_file).exists() {
        println!("❌ 输入文件不存在: {}", input_file);
        return Ok(());
    }
    
    println!("📥 读取输入文件: {}", input_file);
    
    // 使用TS合并器
    let mut converter = TsConverter::new(1024 * 1024); // 1MB buffer
    
    // 读取输入文件并添加到转换器
    let input_data = tokio::fs::read(input_file).await?;
    converter.add_data(&input_data);
    
    println!("🔄 开始合并为TS格式...");
    
    // 合并到输出文件
    let output_path = Path::new(output_file);
    converter.convert_with_options(output_path, &ConversionOptions {
        output_format: "ts".to_string(),
        quality: None,
        preserve_encoding: true,
        custom_params: Vec::new(),
    }).await?;
    
    println!("✅ 合并完成!");
    
    // 验证输出文件
    if Path::new(output_file).exists() {
        let metadata = std::fs::metadata(output_file)?;
        println!("📄 输出文件: {} (大小: {} 字节)", output_file, metadata.len());
        println!("📋 文件内容预览:");
        let content = std::fs::read_to_string(output_file)?;
        println!("{}", &content[..std::cmp::min(content.len(), 100)]);
    } else {
        println!("❌ 输出文件不存在: {}", output_file);
    }
    
    Ok(())
}